article.contents {
  h2 {
    margin: 22px 0 6px 0;
    font: 600 normal 18px/24px $nav;
    text-transform: uppercase;
    letter-spacing: 1px;

    .num {
      display: inline-block;
      width: 36px;
    }
  }

  ul {
    margin: -12px 0 0 0;
    padding: 6px 0 14px 0;
  }

  li {
    padding: 12px 0 0 36px;
    font: normal 16px/24px $nav;
    color: $gray-4;

    list-style-type: none;

    .num {
      display: inline-block;
      letter-spacing: 1px;
      width: 36px;
    }

    a {
      font: 600 17px/24px $nav;
    }
  }

  li.design-note {
    padding-top: 0;

    a {
      font: 400 16px/23px $nav;
    }
  }

  // Format the chapter list in two columns.
  .chapters {
    display: table;
    width: $col * 18;
  }

  .row {
    display: table-row;
  }

  .first, .second {
    display: table-cell;
    vertical-align: top;
  }

  .second {
    padding-left: $col;
  }

  footer {
    width: $col * 18;
  }
}

// Go single-column with the chapter list.
@media only screen and (max-width: 1344px) {
  article.contents {
    .chapters, .row, .first, .second {
      display: block;
      width: auto;
    }

    .second {
      padding-left: 0;
    }

    footer {
      width: inherit;
    }
  }
}

// Then bring the margins in some.
@media only screen and (max-width: 630px) {
  article.contents {
    h2 .num, li .num {
      width: 28px;
    }

    ol, ul {
      margin-left: 0;
    }

    li {
      padding-left: 0;
    }
  }
}

// Finally start shrinking text.
@media only screen and (max-width: 580px) {
  article.contents {
    h2 {
      margin: 19px 0 6px 0;
      font-size: 17px;
      line-height: 22px;
    }

    h3 {
      padding: 1px 0 2px 0;
      font-size: 17px;
      line-height: 22px;
    }

    p {
      font-size: 15px;
      line-height: 22px;
    }

    ol, ul {
      padding-bottom: 8px;
    }

    li {
      font-size: 14px;
      line-height: 22px;
      padding: 4px 0 3px 0;
    }
  }
}
